1. Technical Field
The present invention relates to scheduling systems and methods, and more particularly to systems and methods for optimal resource allocation and latency prediction in distributed systems.
2. Description of the Related Art
The scope of soft real-time distributed systems is expanding into the enterprise world, as businesses aim to respond more rapidly to real-world events, including those generated due to sensors (e.g., RFID receivers). In addition, due to technology convergence, soft real-time applications like VOIP (voice over Internet protocol) and more general multimedia interactions, share the same infrastructure as non-real-time applications. These applications have real-time requirements on both session establishment and the resulting media streams.
The shared infrastructure for applications with a diverse set of real-time requirements (including the extreme case of no real-time requirements) is challenging in terms of ensuring that the requirements are met. Workloads of these applications can vary significantly over time, and available resources (both server and network resources) can change (due to failures or other reasons). Hence, a static schedule is not suitable.
There is also a trend towards the use of service level agreements (SLAs) to both quantify the importance of different applications and to flexibly state the quality of service requirements. For example, an SLA for an application could be used to derive a utility function that: (1) expresses the utility of the application as a function of latency; (2) implicitly encodes the importance with respect to other applications (maximum or minimum utility of this application versus that of another application); and, (3) explicitly encodes the importance of meeting a particular latency requirement (the decrease in utility if that latency is not achieved).
Since real-time applications are increasingly deployed on distributed systems, due to the diverse set of real-time requirements, varying workloads and changing resource demands, the scheduling of such applications may be challenging in terms of ensuring that the requirements are met.